home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 October / CHIP Ekim 1996.iso / web / plugins / live3d16 / inst / live3d.mst < prev    next >
Encoding:
Text File  |  1996-04-11  |  10.2 KB  |  340 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20. CONST CUSTINST      = 6200  
  21. CONST NETSCAPE      = 8000 
  22. CONST BADNETSCAPE   = 8100
  23.  
  24. ''Bitmap ID
  25. CONST LOGO = 1
  26.  
  27. GLOBAL DEST$        ''Default destination directory.
  28. GLOBAL OPTCUR$      ''Option selection from option dialog.
  29. GLOBAL szDATA$       ''Data directory
  30. GLOBAL szWINSYSTEM$  ''WinSystem directory
  31. GLOBAL szSYSTEM$     ''System directory
  32. GLOBAL szNetscape$   ''Netscape Directory                  
  33. GLOBAL szPlugin$     ''Plugin Directory                  
  34. GLOBAL szGreg$       '' Dummy
  35. GLOBAL szNetscapeIni$ '' Netscape INI
  36. GLOBAL szGeeWiz$    '' Another Dummy
  37. GLOBAL szOldPlugin$    '' Another Dummy
  38.  
  39.  
  40. DECLARE SUB Install
  41. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  42. DECLARE FUNCTION ExeFileType LIB "mscuistf.dll" (szFile$) AS INTEGER
  43.  
  44. INIT:
  45.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  46.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  47.  
  48.     SetBitmap CUIDLL$, LOGO
  49.     SetTitle "Live3D for Netscape Navigator"
  50.  
  51.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  52.     IF szInf$ = "" THEN
  53.         szInf$ = GetSymbolValue("STF_CWDDIR") + "LIVE3D.INF"
  54.     END IF
  55.     ReadInfFile szInf$
  56.  
  57.     OPTCUR$ = "1"
  58.     DEST$ = "C:\NETSCAPE\LIVE3D"  
  59.     szDATA$ = "C:\NETSCAPE\LIVE3D\DATA"
  60.     szSYSTEM$ = "C:\NETSCAPE\LIVE3D"
  61.     szWINSYSTEM$ = GetWindowsDir
  62.  
  63. '$IFDEF DEBUG
  64.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  65.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  66.     IF IsDriveValid(WinDrive$) = 0 THEN
  67.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  68.         GOTO QUIT
  69.     END IF
  70. '$ENDIF ''DEBUG
  71.  
  72.  
  73. WELCOME:
  74.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  75.  
  76.     IF sz$ = "CONTINUE" THEN
  77.         UIPop 1
  78.     ELSE
  79.         GOSUB ASKQUIT
  80.         GOTO WELCOME
  81.     END IF
  82.  
  83.  
  84. OPTION:
  85. OPTL1:
  86.  
  87.  
  88.  GETPATH:
  89. '*    SetSymbolValue "EditTextIn", DEST$
  90. '*    SetSymbolValue "EditFocus", "END"
  91. GETPATHL1:
  92. '*    sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  93. '*    DEST$ = GetSymbolValue("EditTextOut")
  94. '*
  95. '*    IF sz$ = "CONTINUE" THEN
  96. '*        IF IsDirWritable(DEST$) = 0 THEN
  97. '*            GOSUB BADPATH
  98. '*            GOTO GETPATHL1
  99. '*        END IF
  100. '*        UIPop 1
  101. '*    ELSEIF sz$ = "REACTIVATE" THEN
  102. '*        GOTO GETPATHL1
  103. '*    ELSEIF sz$ = "BACK" THEN
  104. '*        UIPop 1
  105. '*        GOTO WELCOME
  106. '*    ELSE
  107. '*        GOSUB ASKQUIT
  108. '*        GOTO GETPATH
  109. '*    END IF
  110.  
  111.  
  112. NETSCAPE:  
  113.     szNetscapeIni$ = GetIniKeyString("WIN.INI", "Netscape", "ini")
  114.     szNetscape$ = GetIniKeyString("WIN.INI", "Netscape", "ini")
  115.     IF szNetscape$ = "" THEN
  116.         szNetscape$ = MID$(GetWindowsDir, 1, 1) + ":\NETSCAPE\NETSCAPE.EXE"
  117.         szPlugin$ = MID$(GetWindowsDir, 1, 1) + ":\NETSCAPE\PLUGINS"
  118.     ELSE
  119.         SPLITPATH szNetscape$, drv$, dir$, filename$, ext$
  120.         szNetscape$ = drv$ + MID$(dir$, 1, LEN(dir$) - 1) + "\NETSCAPE.EXE"
  121.         szPlugin$ = drv$ + MID$(dir$, 1, LEN(dir$) - 1) + "\PLUGINS"
  122.     END IF
  123.  
  124.     SetSymbolValue "EditTextIn", szNetscape$
  125.     SetSymbolValue "EditFocus", "END"
  126. NETSCAPEL1:
  127.     sz$ = UIStartDlg(CUIDLL$, NETSCAPE, "FNetscapeDlgProc", APPHELP, HELPPROC$)
  128.     szNetscape$ = GetSymbolValue("EditTextOut")
  129.  
  130.     IF sz$ = "CONTINUE" THEN
  131. '*
  132. '*  NEED TO CHECK NETSCAPE.EXE HERE!
  133. '*    
  134. '*        IF IsDirWritable(DEST$) = 0 THEN
  135. '*            GOSUB BADPATH
  136. '*            GOTO GETPATHL1
  137. '*        END IF                 
  138.  
  139.         IF ExeFileType(szNetscape$) = 2 THEN
  140.             GOSUB BADNETSCAPE
  141.             GOTO  NETSCAPEL1
  142.         ENDIF
  143.  
  144.         IF szNetscape$ = "" THEN
  145.             szNetscape$ = MID$(GetWindowsDir, 1, 1) + ":\NETSCAPE\NETSCAPE.EXE"
  146.             DEST$ = MID$(GetWindowsDir, 1, 1) + ":\NETSCAPE\LIVE3D"
  147.             szPlugin$ = MID$(GetWindowsDir, 1, 1) + ":\NETSCAPE\PLUGINS"
  148.         ELSE
  149.             SPLITPATH szNetscape$, drv$, dir$, filename$, ext$
  150.             szNetscape$ = drv$ + MID$(dir$, 1, LEN(dir$) - 1) + "\NETSCAPE.EXE"
  151.             DEST$ = drv$ + MID$(dir$, 1, LEN(dir$) - 1) + "\LIVE3D"
  152.             szPlugin$ = drv$ + MID$(dir$, 1, LEN(dir$) - 1) + "\PLUGINS"
  153.         END IF
  154.  
  155.         UIPop 1
  156.     ELSEIF sz$ = "REACTIVATE" THEN
  157.         GOTO NETSCAPEL1
  158.     ELSEIF sz$ = "BACK" THEN
  159.         UIPop 1
  160.         GOTO GETPATHL1
  161.     ELSE
  162.         GOSUB ASKQUIT
  163.         GOTO NETSCAPE
  164.     END IF
  165.  
  166.  
  167.     Install
  168.  
  169.  
  170. QUIT:
  171.     ON ERROR GOTO ERRQUIT
  172.  
  173.     IF ERR = 0 THEN
  174.         dlg% = EXITSUCCESS
  175.     ELSEIF ERR = STFQUIT THEN
  176.         dlg% = EXITQUIT
  177.     ELSE
  178.         dlg% = EXITFAILURE
  179.     END IF
  180. QUITL1:
  181.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  182.     IF sz$ = "REACTIVATE" THEN
  183.         GOTO QUITL1
  184.     END IF
  185.     UIPop 1
  186.  
  187.     END
  188.  
  189. ERRQUIT:
  190.     i% = DoMsgBox("Setup sources were corrupted, call 1-800-551-5187!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  191.     END
  192.  
  193.  
  194.  
  195. BADPATH:
  196.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  197.     IF sz$ = "REACTIVATE" THEN
  198.         GOTO BADPATH
  199.     END IF
  200.     UIPop 1
  201.     RETURN
  202.  
  203.  
  204. BADNETSCAPE:
  205.     sz$ = UIStartDlg(CUIDLL$, BADNETSCAPE, "FInfo0DlgProc", 0, "")
  206.     IF sz$ = "REACTIVATE" THEN
  207.         GOTO BADNETSCAPE
  208.     END IF
  209.     UIPop 1
  210.     RETURN
  211.  
  212.  
  213. ASKQUIT:
  214.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  215.  
  216.     IF sz$ = "EXIT" THEN
  217.         UIPopAll
  218.         ERROR STFQUIT
  219.     ELSEIF sz$ = "REACTIVATE" THEN
  220.         GOTO ASKQUIT
  221.     ELSE
  222.         UIPop 1
  223.     END IF
  224.     RETURN
  225.  
  226.  
  227.  
  228. '**
  229. '** Purpose:
  230. '**     Builds the copy list and performs all installation operations.
  231. '** Arguments:
  232. '**     none.
  233. '** Returns:
  234. '**     none.
  235. '*************************************************************************
  236. SUB Install STATIC
  237.  
  238.  
  239.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  240.     CreateDir DEST$, cmoNone
  241.     CreateDir szPlugin$, cmoNone
  242.     szSystem$ = DEST$
  243. '*    szSYSTEM$ = MakePath(DEST$, "SYSTEM")
  244. '*    CreateDir szSYSTEM$, cmoNone
  245.     szDATA$ = MakePath(DEST$, "DATA")
  246.     CreateDir szDATA$, cmoNone
  247.                                         
  248.                                         
  249. '* delete old webfx stuff
  250.     szOldPlugin$ = MakePath(szPlugin$, "NPWFX16.DLL")
  251.     RemoveFile szOldPlugin$, cmoRemove
  252.     szOldPlugin$ = MakePath(szPlugin$, "NPWFN116.DLL")
  253.     RemoveFile szOldPlugin$, cmoRemove
  254.                                         
  255.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  256.     AddSectionFilesToCopyList "Data", SrcDir$, szDATA$
  257.     AddSectionFilesToCopyList "Plugin", SrcDir$, szPlugin$
  258.     AddSectionFilesToCopyList "System", SrcDir$, szSYSTEM$
  259.     AddSectionFilesToCopyList "WinSystem", SrcDir$, szWINSYSTEM$
  260.     CopyFilesInCopyList
  261.  
  262. '*    REM ini$ = MakePath(DEST$, "DEMO.INI")
  263.     CreateIniKeyValue "WIN.INI", "Live3D", "SystemDirectory", szSystem$ + "\", cmoOverwrite
  264.     
  265.     szGreg$ = MakePath(DEST$,"live3d.exe")
  266.  
  267. '*    RemoveIniKey szNetscapeIni$, "Viewers",  "x-world/x-vrml", cmoNone
  268. '*    CreateIniKeyValue szNetscapeIni$, "Viewers",  "x-world/x-vrml", szGreg$, cmoNone
  269.  
  270. '*    CreateIniKeyValue szNetscapeIni$, "Viewers",  "x-world/x-vrml", szGreg$, cmoOverwrite
  271. '*    CreateIniKeyValue szNetscapeIni$, "Viewers",  "TYPE20",          "x-world/x-vrml", cmoNone
  272. '*    CreateIniKeyValue szNetscapeIni$, "Suffixes", "x-world/x-vrml", "wrl,wrz,gz", cmoOverwrite
  273.  
  274. '* Let's find the next available entry for this viewer type!!
  275. '*    j%=0
  276. '*    FOR i% = 0 TO 100 STEP 1
  277. '*
  278. '*        szGeeWiz$=STR$(i%)
  279. '*        szGeeWiz$="TYPE"+LTRIM$(szGeeWiz$)
  280. '*    
  281. '*        szGeeWiz$ = GetIniKeyString(szNetscapeIni$, "Viewers", szGeeWiz$)
  282. '*        
  283. '*        IF szGeeWiz$ = "" THEN
  284. '*            j% = i%
  285. '*            i% = 100    
  286. '*        ELSEIF szGeeWiz$ = "x-world/x-vrml" THEN
  287. '*            j% = -1
  288. '*            i% = 100
  289. '*        END IF
  290. '*        
  291. '*    NEXT
  292. '*
  293. '*    IF j% <> -1 THEN
  294. '*        szGeeWiz$=STR$(j%)
  295. '*        szGeeWiz$="TYPE"+LTRIM$(szGeeWiz$)
  296. '*        CreateIniKeyValue szNetscapeIni$, "Viewers",  szGeeWiz$, "x-world/x-vrml", cmoOverwrite
  297. '*    ENDIF
  298.  
  299.     CreateProgmanGroup "Netscape Navigator Atlas", "", cmoNone
  300.     ShowProgmanGroup  "Netscape Navigator Atlas", 1, cmoNone
  301.     CreateProgmanItem "Netscape Navigator Atlas", "Netscape Live3D", szNetscape$+" "+MakePath(DEST$,"netscape.wrl"), MakePath(DEST$,"live3d.ico"), cmoOverwrite
  302. '*    CreateProgmanItem "Netscape", "Cool Worlds", szNetscape$+" "+MakePath(DEST$,"coolwrls.htm"), "", cmoOverwrite
  303. '*    CreateProgmanItem "Netscape", "WebFX Readme", szNetscape$+" "+MakePath(DEST$,"readme.htm"), "", cmoOverwrite
  304. '*    CreateProgmanItem "WebFX", "WebFX Readme", "write.exe "+MakePath(DEST$,"webfx.wri"), "", cmoOverwrite
  305.  
  306. '*    AddDos5Help "WEBFX", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  307.  
  308. '*    REM szNetscape$ = FindFileInTree("netscape.exe", "c:\")
  309.     szNetscape$ = FindFileUsingFileOpen("netscape.exe")
  310. '*    WriteToLogFile "Found Netscape at: " + szNetscape$
  311.  
  312. '*    CloseLogFile
  313.  
  314. END SUB
  315.  
  316.  
  317.  
  318. '**
  319. '** Purpose:
  320. '**     Appends a file name to the end of a directory path,
  321. '**     inserting a backslash character as needed.
  322. '** Arguments:
  323. '**     szDir$  - full directory path (with optional ending "\")
  324. '**     szFile$ - filename to append to directory
  325. '** Returns:
  326. '**     Resulting fully qualified path name.
  327. '*************************************************************************
  328. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  329.     IF szDir$ = "" THEN
  330.         MakePath = szFile$
  331.     ELSEIF szFile$ = "" THEN
  332.         MakePath = szDir$
  333.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  334.         MakePath = szDir$ + szFile$
  335.     ELSE
  336.         MakePath = szDir$ + "\" + szFile$
  337.     END IF
  338. END FUNCTION
  339.  
  340.